\subsection{Ontwerp}
Het ontwerp bestaat uit twee grote delen: de domeinklassen en de agentklassen. Verder is er ook nog de simulatie, hierin bevindt zich de mainloop, en de gui die wordt aangesproken via een facade. Het domein bestaat uit een Clock, die zorgt voor de discrete tijden, en de klassen Road en Crossroad, die beiden de interface TrafficInfrastructure implementeren en bestaan uit \'e\'en of meerdere Segment-objecten. De klasse Task heeft een taak en houdt een auto (Car) bij die deze moet uitvoeren. In het domain-package is er tot slot nog de hulpklasse TimeInterval om een tijdsinterval aan te duiden.\\
\\
In het agent-package zitten de verschillende soorten agents nl. Task Agent die een Task uitvoert en Resource Agent die de resources beheert. Beide implementeren de interface Agent. De Resource Agents zijn verder onderverdeeld in twee soorten, nl. de RoadAgent en de CrossRoadAgent, deze erven beide over van Resource Agent. 

Een Resource Agent zendt elke tijdseenheid zijn Feasibility Ants uit terwijl een Task Agent elke tijdseenheid zijn Exploration en Intention Ants gaat uitsturen. Alle ant-klassen erven over van de interface Ant, terwijl Exploration Ants nog onderverdeeld worden in drie groepen: StartExplorationAnt, EnterResourceAnt en ExitResourceAnt. 

De StartExplorationAnt is de eerste ExplorationAnt, deze zorgt voor het opstarten van de ant. Daarna wordt de EnterResourceAnt aangemaakt, deze gaat de resource binnen en vraagt de mogelijke intervallen op wanneer deze kan binnengegaan worden. De EnterResourceAnt maakt dan op zijn beurt een nieuwe ExitResourceAnt aan. Deze vraagt aan de resource de exit intervallen op en maakt dan terug een EnterResourceAnt aan. De opsplitsing is niet zichbaar voor de gebruiker van de Exploration Ant en zorgt ervoor dat er niet teveel gevalsonderscheid moet gemaakt worden.

\subsection{Implementatie}
Het project is geprogrammeerd in Java 5. Dit omdat een object-geori\"enteerde programmeertaal vereist is en omdat we er vertrouwd mee waren. Tijdens de implementatie hebben we altijd samengewerkt. Dit om communicatie vlotter te laten verlopen en we zo het effici\"entste werken.